package com.dyw.Day21;

/**
 * @author Devil
 * @create 2022-02-03-22:36
 *
 * 第一个错误的版本
 *
 * 你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是否在单元测试中出错。
 * 实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。
 *
 * 思路: 二分查找
 */
public class Demo01 {
    public int firstBadVersion(int n) {
        int start=1, end=n;
        int mid;
        int result=0;
        while(start<=end){
            mid = start+(end-start)/2;
            if(!isBadVersion(mid)){
                start = mid+1;
            }else{
                end = mid-1;
            }
            result = start;
        }
        return result;
    }

    public boolean isBadVersion(int version){
        /*
         * 具体已实现
         */
        return true;
    }
}
